﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using ArcEngine.Resources;


//
// List of monsters : http://members.tripod.com/~stanislavs/games/eob1mons.htm
//
//
//
//
//
//
//
//
namespace DungeonEye
{

	/// <summary>
	/// Base interface of all monster in the game
	/// </summary>
	public abstract class Monster
	{
		public Monster(string name, Maze mz)
		{
			this.name = name;
			this.maze = mz;
		}

		/// <summary>
		/// Update the monster logic
		/// </summary>
		abstract public void Update();




		/// <summary>
		/// Draw the monster
		/// </summary>
		/// <param name="offset">Offset on the screen to draw the monster</param>
		abstract public void Draw(Point offset);


		#region Properties



		/// <summary>
		/// Direction the monster face
		/// </summary>
		public Compass Facing
		{
			get
			{
				return facing;
			}
			set
			{
				facing = value;
			}
		}
		Compass facing;


		/// <summary>
		/// Location of the monster in the maze
		/// </summary>
		public Point Location
		{
			get
			{
				return location;
			}
			set
			{
				location = value;
			}
		}
		Point location;



		/// <summary>
		/// Name of the monster
		/// </summary>
		public string Name
		{
			get
			{
				return name;
			}
		}
		string name;

		/// <summary>
		/// Level where the monster live
		/// </summary>
		public Maze Maze
		{
			get
			{
				return maze;
			}
			set
			{
				maze = value;
			}
		}
		Maze maze;



		/// <summary>
		/// TileSet of the monster
		/// </summary>
		public TileSet Tileset
		{
			get
			{
				return tileSet;
			}

			protected set
			{
				tileSet = value;
			}
		}
		TileSet tileSet;

		#endregion
	}
}
